﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyNhanVien.BusinessLogicLayer;
using QuanLyNhanVien.DataAccessLayer;

namespace QuanLyNhanVien.PresentationLayer
{
    public partial class NhapNghiPhep : UserControl
    {
        NgayNghiCTL nnCTL;
        NgayNghiDTO NgayNghiHienTai;
        public NhapNghiPhep()
        {
            InitializeComponent();
        }

        public void HienThiDanhSachPhongBan()
        {
            List<NgayNghiDTO> dt = nnCTL.getDsNgayNghi();
            dgv_NgayNghi.DataSource = dt;
            textBox_ID.Text = "";
            textBox_MANV.Text = "";
            textBox_Thang.Text = "";
            textBox_Nam.Text = "";
            textBox_SoNgayNghi.Text = "";
        }
        private void NhapNghiPhep_Load(object sender, EventArgs e)
        {
            nnCTL = new NgayNghiCTL();
            NgayNghiHienTai = new NgayNghiDTO();
            HienThiDanhSachPhongBan();
        }

        private void button_Them_Click(object sender, EventArgs e)
        {
            try
            {
                nnCTL.NgayNghi.ID = int.Parse(textBox_ID.Text);
                nnCTL.NgayNghi.MANV  = textBox_MANV.Text;
                nnCTL.NgayNghi.Thang = int.Parse(textBox_Thang.Text);
                nnCTL.NgayNghi.Nam = int.Parse(textBox_Nam.Text);
                nnCTL.NgayNghi.SoNgayNghi = int.Parse(textBox_SoNgayNghi.Text);
            }
            catch (Exception ex)
            {
                return;
            }

            bool ketqua = nnCTL.insert();
            HienThiDanhSachPhongBan();

            if (ketqua)
                MessageBox.Show("Thêm Ngày nghỉ thành công.", "Thông báo");
            else
                MessageBox.Show("Thêm Ngày nghỉ thất bại.", "Thông báo");
        }

        private void dgv_NgayNghi_SelectionChanged(object sender, EventArgs e)
        {
            if (dgv_NgayNghi.SelectedRows.Count > 0)
            {
                NgayNghiHienTai.ID = (int)dgv_NgayNghi.SelectedRows[0].Cells[0].Value;
                NgayNghiHienTai.MANV = (string)dgv_NgayNghi.SelectedRows[0].Cells[1].Value;
                NgayNghiHienTai.Thang = (int)dgv_NgayNghi.SelectedRows[0].Cells[2].Value;
                NgayNghiHienTai.Nam = (int)dgv_NgayNghi.SelectedRows[0].Cells[3].Value;
                NgayNghiHienTai.SoNgayNghi = (int)dgv_NgayNghi.SelectedRows[0].Cells[4].Value;

                textBox_ID.Text = NgayNghiHienTai.ID.ToString();
                textBox_MANV.Text = NgayNghiHienTai.MANV;
                textBox_Thang.Text = NgayNghiHienTai.Thang.ToString();
                textBox_Nam.Text = NgayNghiHienTai.Nam.ToString();
                textBox_SoNgayNghi.Text = NgayNghiHienTai.SoNgayNghi.ToString();
            }
        }

        private void button_Xoa_Click(object sender, EventArgs e)
        {
            if (textBox_ID.Text == "")
                return;
            nnCTL.NgayNghi.ID = int.Parse(textBox_ID.Text);

            bool ketqua = nnCTL.delete();

            if (ketqua)
            {
                MessageBox.Show("Xóa Ngày nghỉ thành công", "Thông báo");
                HienThiDanhSachPhongBan();
            }
            else
                MessageBox.Show("Xóa Ngày nghỉ thất bại", "Thông báo");
        }

        private void button_Sua_Click(object sender, EventArgs e)
        {
            try
            {
                int maNN = (int)dgv_NgayNghi.SelectedRows[0].Cells[0].Value;

                if (maNN != int.Parse(textBox_ID.Text))
                {
                    MessageBox.Show("Không thể thay đổi Mã phòng.", "Thông báo");
                    return;
                }

                nnCTL.NgayNghi.ID = int.Parse(textBox_ID.Text);
                nnCTL.NgayNghi.MANV = textBox_MANV.Text;
                nnCTL.NgayNghi.Thang = int.Parse(textBox_Thang.Text);
                nnCTL.NgayNghi.Nam = int.Parse(textBox_Nam.Text);
                nnCTL.NgayNghi.SoNgayNghi = int.Parse(textBox_SoNgayNghi.Text);
            }
            catch (Exception ex)
            {
                return;
            }

            bool ketqua = nnCTL.update();

            if (ketqua)
            {
                MessageBox.Show("Sửa Phòng ban thành công", "Thông báo");
                HienThiDanhSachPhongBan();
            }
            else
                MessageBox.Show("Sửa Phòng ban thất bại", "Thông báo");
        }

        private void button_Thoat_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void button_refresh_Click(object sender, EventArgs e)
        {
            HienThiDanhSachPhongBan();
        }

        private void button_Export_Click(object sender, EventArgs e)
        {

            List<NgayNghiDTO> listNN = nnCTL.getDsNgayNghi();

            DataTable dt = new DataTable();
            dt = Helper.ListToDataTable<NgayNghiDTO>(listNN);

            Helper.ExportDataTableToExcel(dt, null);
        }
    }
}
